//
//  main.c
//  函数参数
//
//  Created by ws on 2017/7/18.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
 函数形参:当定义函数的时候,函数名称后面小括号中的参数我们成为函数形参
 函数实参:当调用函数的时候,函数名称后面小括号中的参数我们成为函数实参
 1.实参和形参是一一对应的
 2.形参是什么类型那么实参也必须传入什么类型的值
 3.形参列表中不可以有同名的形参变量
 4.在函数内部也不可以直接定义与形参同名的变量
 5.基本数据类型作为函数参数传递的时候是值传递(值copy,就是实参的值copy一份给形参,即使形参再改变值实参本身也不发生变化)******************
 */


/**
 基本数据类型作为函数参数传递的时候是值传递的(把a里面的值copy一份放到num2里面了,把b里面的值copy一份放到num1里面了,num1和num2无论怎么变化,a和b本身没有变化)
 值传递:仅仅是把实参的值赋值给了形参 改变形参的值并不会影响实参的值
 */
double sum(double num1,double num2){
//    int num1;//redefinition从新定义
    num1 = 20.1;//基本数据类型作为函数参数传递的时候是值传递(值copy,就是实参的值copy一份给形参,即使形参再改变值实参本身也不发生变化)
    return num1 + num2;
}
int main(int argc, const char * argv[]) {
    double a = 10.3;
    double b = 5.1;
    
    double result = sum(b,a);
    printf("--b==%lf----%lf\n",b,result);//--b==5.100000----30.400000
    
//    printf("个数==%d\n",argc);
//    for (int i = 0; i < argc; i++) {
//        printf("==%s\n",argv[i]);
//    }
    return 0;
}
